//app.js
const Util = require('/utils/util.js')
const QQMapWX = require('/utils/qqmap-wx-jssdk.js')
const LuoAnHttp = require('network/luoAnHttp.js')
const regeneratorRuntime = require("/runtime.js"); //参考 https://juejin.im/post/5d366067e51d4550723b14cf
const bgMusic = wx.getBackgroundAudioManager() //创建背景音乐
const mrhHttp = require('/network/mrhhttp.js')
App({
  onLaunch: function (e) {
    var info = wx.getSystemInfoSync();
    this.globalData.systemInfo = info;
    console.log(info);
    this.globalData.contentHeight = info.windowHeight - info.statusBarHeight - 44;
    wx.hideShareMenu();
    mrhHttp.init(this)
  },
  /**
   * 授权页从哪授权回那页
   */
  redirectAuthorize: function (path) {
  
  },
  /**
   * 注册完回首页
   */
  redirectRegist: function (path) {


  },
  backToLast: function () {

  },
  /**
   * 登录成功后去哪里的问题；
   */

  loginInSystem: async function (path) {
    //该函数获取所有栈内的路由
    let pages = getCurrentPages();
    //数组中最后一个即当前路由，options是参数
    const targetUrl = 'pages/luoAn/common/loginIndex';
    const currentUrls = pages.map(v=>v.route)
    if(currentUrls.indexOf(targetUrl)===-1){
      wx.navigateTo({
        url:`/${targetUrl}` 
      })
    }
    
    // var _that = this;
    // /**
    //  * 登录获取unionId的过程；做成同步；
    //  * 1：wx.login获取小程序临时凭证 code；
    //  * 2：通过code获取到sessionKey,涉及到appscret等明文敏感信息，请求动作放在服务器；
    //  * 3：必须要求用户授权；通过wx.getUserInfo()获取 encryptedData，iv；保证未关注公众号或者未参与过任何开放平台的授权的也能正常获取unionId
    //  * 4：解密的动作有appscret等明文，放在服务器；需要的参数 就是 第二步的 sessionkey;第三步的 encryptedData，iv;
    //  */
    // //1：获取登录的code;
    // var res = await UserHttp.asynWXLogin();
    // console.log(res);
    // //2: 通过code获取sessionKey;
    // var sessionKey;
    //  
    // var sessionKeyData = await UserHttp.asynGetSessionKeyByCode({
    //   wechatCode: res.code,
    //   programId: MRDAppid
    // });
    // if (sessionKeyData && sessionKeyData.data) {
    //   sessionKey = sessionKeyData.data;
    // } else {
    //   if (this.globalData.tryTimes<3){
    //     sessionKeyData = await UserHttp.asynGetSessionKeyByCode({
    //       wechatCode: res.code,
    //       programId: MRDAppid
    //     });
    //     this.globalData.tryTimes++;
    //     if (sessionKeyData == null) {
    //       wx.showLoading({
    //         title: '尝试第' + this.globalData.tryTimes + '次重连',
    //       })
    //       _that.loginInSystem()
    //       return
    //     }
    //   }

    // }
    // sessionKey = sessionKeyData ? sessionKeyData.data:null;
    // //3:获取授权信息; 如果未能获取授权信息；则要跳转到授权页面
    // var weixinUserInfo = await UserHttp.asynWXUserInfo()
    // if (weixinUserInfo) {
    //   var encryptedData = weixinUserInfo.encryptedData;
    //   var iv = weixinUserInfo.iv
    //   var code = await UserHttp.asynWXLogin();
    //   var unionIdParam = {
    //     sessionKey: sessionKey,
    //     data: encryptedData,
    //     iv: iv,
    //   }
    //   var unionId
    //   var unionIdData = await UserHttp.asynUserGetUnionId(unionIdParam);
    //   unionId = unionIdData?unionIdData.data.unionId:null;
    //   this.globalData.userInfo = unionIdData?unionIdData.data:{};
    //   var loginParam = {
    //     unionId: unionId,
    //     wechatOpenId: unionIdData ? unionIdData.data.openId:"",
    //   };
    //   //这一步存起来 如果注册；则从这里取
    //   wx.setStorageSync(Util.MRDCommonConst.uionIdStoreageKey, unionId)
    //   /**
    //    * asynUserLogin 如果未注册；应该跳转到注册页面；或者绑定页面？
    //    */
    //   var loginInfo = await UserHttp.asynUserLogin(loginParam);
    //   if (loginInfo && loginInfo.data) {
    //     var loginInfoData = loginInfo.data;
    //     wx.setStorageSync(Util.MRDCommonConst.staffLevelKey, loginInfoData.level);
    //     wx.setStorageSync(Util.MRDCommonConst.staffNameKey, loginInfoData.name);
    //     wx.setStorageSync(Util.MRDCommonConst.loginTokenKey, loginInfoData.token);
    //     wx.setStorageSync(Util.MRDCommonConst.merchantIdKey, loginInfoData.merchantId);
    //     wx.setStorageSync(Util.MRDCommonConst.merchantNameKey, loginInfoData.merchantName);
    //     wx.setStorageSync(Util.MRDCommonConst.staffIdKey, loginInfoData.staffId);
    //     wx.setStorageSync(Util.MRDCommonConst.accountAuthrizeToken, true);
    //     wx.setStorageSync(Util.MRDCommonConst.hasAppIdList, loginInfoData.appIds)
    //     this.globalData.loginInfo = loginInfoData;
    //     this.globalData.loginCallback && this.globalData.loginCallback()
    //     this.globalData.loginInfoCallback && this.globalData.loginInfoCallback(loginInfo)
    //     wx.reLaunch({
    //       url: '/pages/home/home'
    //     })
    //   } else {
    //     //不一定是去注册；得看从哪里进来的
    //     this.redirectRegist(path ? path : '/pages/home/home');
    //   }
    // } else {
    //   this.redirectAuthorize(path);
    // }
  },
  demoLoginIn: async function (path) {
    
  },
  globalData: {
    userInfo: null, //个人信息 预留的钩子
    systemInfo: null, //系统信息 预留的钩子
    loginCallback: null, //预留的钩子；登录成功后再去执行
    loginInfo: null,
    contentHeight: 0,
    locationAuthorInfo: 0, //定位授权信息;//0是不知道；-1是未授权；1是授权成功
    Util: Util,
    mrhHttp,
    LuoAnHttp,
    bgMusic,
    QQMapWX,
  },
  login: function () {
    return new Promise((resolve, reject) => {
      wx.login({
        success: res => {
          resolve(res);
        }
      })
    })
  },

  checkUpdate: function () {
    const updateManager = wx.getUpdateManager();
    updateManager.applyUpdate()
  },
  onHide: function () {
    // wx.getBackgroundAudioPlayerState({
    //   success:s=>{
    //     console.log('LAOMI App onHide,播放状态是',s);
    //     if(s.status==0){ //暂停中
          
    //     }else if(s.status==1){ // 播放中
    //       bgMusic.pause();
    //     }else if(s.status==2){ // 没有播放

    //     }
    //   }
     
    // })
    
    bgMusic.stop();
    // this.loginInSystem();
  },
  onShow:function(){
    // wx.getBackgroundAudioPlayerState({
    //   success:s=>{
    //     console.log('LAOMI App Onshow播放状态是',s);
    //     if(s.status==0){ //暂停中
    //       bgMusic.play();
    //     }else if(s.status==1){ // 播放中

    //     }else if(s.status==2){ // 没有播放

    //     }
    //   }
    // })
  },
  //重写分享方法
  overShare: function () {
    //监听路由切换
    //间接实现全局设置分享内容
    wx.onAppRoute(function (res) {
    })
  },
})